package com.zhenmaitang.clinic_sys.service;

import com.zhenmaitang.clinic_sys.entity.Permission;
import java.util.List;
import java.util.Set;

public interface PermissionService {
    List<Permission> getAllPermissions();
    Permission getPermissionById(Integer id);
    Permission getPermissionByCode(String code);
    Permission createPermission(Permission permission);
    Permission updatePermission(Permission permission);
    void deletePermission(Integer id);
    
    // 根据角色名称获取权限集合
    Set<String> getPermissionsByRoleName(String roleName);
    
    // 检查用户是否有指定权限
    boolean hasPermission(String username, String permissionCode);
    
    // 检查用户是否有指定资源的操作权限
    boolean hasResourcePermission(String username, String resource, String action);
    
    // 获取角色的所有权限
    List<Permission> getPermissionsByRoleId(Integer roleId);
    
    // 为角色分配权限
    void assignPermissionsToRole(Integer roleId, List<Integer> permissionIds);
    
    // 获取所有资源类型
    Set<String> getAllResources();
    
    // 获取所有操作类型
    Set<String> getAllActions();
    
    // 根据用户ID获取用户权限
    List<String> getPermissionsByUserId(Integer userId);
}